Shihanmax's blog

  
 

逻辑回归(Logistic Regression)

A. 模型推导

现有样本集合$\{X,y\}$,$X$为特征$\{x_1,x_2,...,x_n\}$,$y$为实数,线性回归中,$X$与$y$之间存在映射关系$y=h_\theta(x)$,其中,

$$h_{\theta}(x)=\sum \theta_i x_i$$

在逻辑回归中,$y$属于集合$\{0,1\}$,$1$表示属于某类别,而$0$表示不属于该类别。

期望得到模型$M$,使得$M(x)\in [0,1]$,这样能够较为方便地衡量$x$属于该类别的概率。

$sigmoid$函数可以满足这个需求:

$$sigmoid(x)=\cfrac{1}{1+e^{-x}}$$

逻辑回归的$h_\theta(x)$可以写成:

$$h_ \theta (x)=\cfrac{1}{1+e^ {- \theta x}}$$

对正样本:

$$P({y=1 \mid x, \theta})=h_ \theta(x)$$

对负样本:

$$P({y=0 \mid x, \theta})=1-h_ \theta(x)$$

将二者合并,有:

$$P({y \mid \theta})={h_ \theta(x)}^y{1-h_ \theta(x)}^{1-y}$$

为方便求解,采用最大化似然函数求解参数$\theta$,对$m$个样本,似然函数$L(\theta)$为:

$$L(\theta)=\prod P(y \mid \theta)=\prod {h_ \theta(x)}^y{1-h_ \theta(x)}^{1-y}$$

对似然函数取对数并取负,可得损失函数$J(\theta)$:

$$J(\theta)=-lnL(\theta)=-\sum {yh_ \theta(x)}+{(1-y)(1-h_ \theta(x))}$$

将$J(\theta)$对$\theta$求导,可得

$$\cfrac{\partial{}}{\partial{\theta}}J(\theta)=x^T(h_\theta (x)-y)$$

使用梯度下降法迭代求解:

$$\theta = \theta - \alpha x^T(h_\theta(x)-y)$$

其中$\alpha$为学习率。

B. 正则化

为避免过拟合问题,可对模型施加$L1$或$L2$正则化项,$Loss$的定义:

$Loss_{L1}=\beta \mid\mid\theta\mid\mid_1$

$Loss_{L2}=\cfrac{1}{2}\beta \mid\mid\theta\mid\mid_2^2$

其中,$\beta$为正则化超参数。

训练时,将$Loss_{L1/2}$与$J(\theta)$相加,并执行梯度下降。

C. 多分类

逻辑回归应用于$n$类多分类时,可以针对每一个类别分别训练$n$个逻辑回归模型$\{h_{\theta1},h_{\theta2},...h_{\theta n}\}$,在模型$h _{\theta i}$中,将属于类别$i$的数据视为正类,其余类别设为负类(1 vs others),预测时对样本$i$,计算所有模型的分数,取分数最大的模型的正样本类别作为该样本$i$的类别。

D. 优缺点

优点

  • 形式简单,模型可解释性强(从权重可以看到各个特征的影响)
  • 效果较好,尤其是在特征选取适当的情况下,工程上经常作为baseline模型
  • 训练速度快,计算量仅与特征量和数据量有关,占用资源小

缺点

  • 应对数据不均衡情况的能力不强
  • 不能解决非线性的问题,因为LR的决策面是线性的
  • 数据特征缺失或特征空间很大时效果不好
  • 包含高度线性相关特征时,不适合使用逻辑回归,会影响特征的解释性